import { IPSAppView } from '../app/view/ipsapp-view';
import { IPSNavigateParamContainer } from './ipsnavigate-param-container';
import { IPSDERBase } from '../dataentity/der/ipsderbase';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSNavigatable
 */
export interface IPSNavigatable extends IPSNavigateParamContainer {
  /**
   * 导航视图过滤项
   * @type {string}
   */
  navFilter: string;

  /**
   * 导航视图对象
   *
   * @type {IPSAppView}
   */
  getNavPSAppView(): IPSAppView | null;

  /**
   * 导航视图对象
   *
   * @type {IPSAppView}
   */
  get navPSAppView(): IPSAppView | null;

  /**
   * 导航视图对象（必须存在）
   *
   * @type {IPSAppView}
   */
  getNavPSAppViewMust(): IPSAppView;

  /**
   * 导航关系
   *
   * @type {IPSDERBase}
   */
  getNavPSDER(): IPSDERBase | null;

  /**
   * 导航关系
   *
   * @type {IPSDERBase}
   */
  get navPSDER(): IPSDERBase | null;

  /**
   * 导航关系（必须存在）
   *
   * @type {IPSDERBase}
   */
  getNavPSDERMust(): IPSDERBase;

  /**
   * 导航视图参数
   * @type {IModel}
   */
  navViewParamJO: IModel;
}
